import fs from 'fs-extra';
import { join } from 'path';

export function initConfig() {
  const configPath = join(process.cwd(), 'i18n.config.js').replace(/\\/g, '/');
  
  if (fs.existsSync(configPath)) {
    console.log('配置文件已存在');
    return;
  }
  
  const defaultConfig = `// i18n配置文件
export default {
  // 收集相关的配置
  collect: {
    // mode: 'dev' | 'production' , dev可以输出ast语法树
    mode: 'production',
    output: './i18n-collect',
    // 收集模板中的属性
    attrHotToken: [],
    // i18n函数标识
    i18nT: '$i18nT',
    // 收集js中文词条
    hotToken: [],
    // 是否生成excel文件
    isCreateExcel: true,
    // 要收集的模块
    entry: {
      // 模块名： 模块url
      droDataDetail: {
        path: './src/views/droDataDetail',
        i18nSource: './test/i18n/en.js',
        prefix: 'test_', // 多语言命名key
        prefixCode: '',
        exclude: ['components'], // 排除的文件或文件夹
      },
    },
  },

  // i18n配置文件目录
  i18nDir: './test/i18n',
  
  // xlsx文件输出目录
  xlsxDir: './i18n-xlsx',
  
  // 生成的XLSX文件名（仅在single模式下使用）
  xlsxFileName: 'i18n_translations.xlsx',

  // 历史生成的XLSX文件，请放在xlsxDir配置的目录下
  historyFileName: 'i18n_translations_history.xlsx',
  
  // 导出模式: 'single' 表示导出到一个XLSX文件，'multiple' 表示导出到多个XLSX文件
  exportMode: 'single',
  
  // 是否为单一文件模式，如果为true，则i18nDir直接指向文件而不是目录
  isFile: true,

  // key模式: 'flat' 拍平对象, 'obj' 保持对象结构
  keyMode: 'flat',
  
  // 支持的语言列表
  languages: ['en', 'no', 'nl-NL', 'sv-SE', 'th-TH'],
  searchLanguage: 'en',
  
  // 模块文件匹配模式（可选）
  modulePattern: '**/*.js',
  
  // 路径别名配置
  alias: {
    '@': './src'
  }
};
`;
  
  fs.writeFileSync(configPath, defaultConfig);
  console.log('配置文件创建成功: i18n.config.js');
}